package com.momo.mapper.mapper.sysSetting;

import com.momo.mapper.dataobject.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created by MOMO on 2019/3/22.
 * 权限 认证
 */
public interface AuthorityMapper {

    /**
     * 根据用户id查询 用户所拥有的角色
     *
     * @param userId
     * @return
     */
    List<Long> rolesByUserId(@Param("userId") Long userId);

    /**
     * 根据角色ids 查询所有权限
     *
     * @param roleId
     * @return
     */
    List<Long> aclsByRoleId(@Param("roleIds") List<Long> roleId);

    /**
     * 根据角色id 查询所有权限
     *
     * @param roleId
     * @return
     */
    List<RoleAclDO> allAclsByRoleId(Long roleId);

    /**
     * 获取所有权限点
     *
     * @param aclPermissionType 权限类型
     * @param userAclIdList     权限点 ids
     * @return
     */
    List<AclDO> getAllAcl(@Param("aclPermissionType") Long aclPermissionType, @Param("userAclIdList") List<Long> userAclIdList);

    /**
     *
     * @param aclPermissionType
     * @return
     */
    List<AclModuleDO> getAllAclModule(@Param("aclPermissionType") Long aclPermissionType);

    /**
     * 得到所有权限
     * @return
     */
    List<RoleDO> getAllRoles();
}
